{
  "variables": [
    {
      "name": "start_time",
      "type": "PX_STRING",
      "description": "The relative start time of the window. Current time is assumed to be now",
      "defaultValue": "-5m"
    },
    {
      "name": "requesting_svc",
      "type": "PX_SERVICE",
      "description": "The full/partial name of the service to for request side. Format: ns/svc_name",
      "defaultValue": ""
    },
    {
      "name": "responding_svc",
      "type": "PX_SERVICE",
      "description": "The full/partial name of the service to for response side. Format: ns/svc_name",
      "defaultValue": ""
    }
  ],
  "globalFuncs": [
    {
      "outputName": "LET",
      "func": {
        "name": "svc_edge_let",
        "args": [
          {
            "name": "start_time",
            "variable": "start_time"
          },
          {
            "name": "requesting_svc",
            "variable": "requesting_svc"
          },
          {
            "name": "responding_svc",
            "variable": "responding_svc"
          }
        ]
      }
    }
  ],
  "widgets": [
    {
      "name": "p50 Latency",
      "position": {
        "x": 0,
        "y": 0,
        "w": 6,
        "h": 3
      },
      "globalFuncOutputName": "LET",
      "displaySpec": {
        "@type": "types.px.dev/px.vispb.TimeseriesChart",
        "timeseries": [
          {
            "value": "latency_p50",
            "series": "k8s",
            "stackBySeries": false,
            "mode": "MODE_LINE"
          }
        ],
        "title": "",
        "yAxis": {
          "label": "P50 Latency"
        },
        "xAxis": null
      }
    },
    {
      "name": "p90 Latency",
      "position": {
        "x": 6,
        "y": 0,
        "w": 6,
        "h": 3
      },
      "globalFuncOutputName": "LET",
      "displaySpec": {
        "@type": "types.px.dev/px.vispb.TimeseriesChart",
        "timeseries": [
          {
            "value": "latency_p90",
            "series": "k8s",
            "stackBySeries": false,
            "mode": "MODE_LINE"
          }
        ],
        "title": "",
        "yAxis": {
          "label": "P90 Latency"
        },
        "xAxis": null
      }
    },
    {
      "name": "Request Throughput",
      "position": {
        "x": 0,
        "y": 3,
        "w": 6,
        "h": 3
      },
      "globalFuncOutputName": "LET",
      "displaySpec": {
        "@type": "types.px.dev/px.vispb.TimeseriesChart",
        "timeseries": [
          {
            "value": "request_throughput",
            "series": "k8s",
            "stackBySeries": false,
            "mode": "MODE_LINE"
          }
        ],
        "title": "",
        "yAxis": {
          "label": "request throughput"
        },
        "xAxis": null
      }
    },
    {
      "name": "Request Error Rate",
      "position": {
        "x": 6,
        "y": 3,
        "w": 6,
        "h": 3
      },
      "globalFuncOutputName": "LET",
      "displaySpec": {
        "@type": "types.px.dev/px.vispb.TimeseriesChart",
        "timeseries": [
          {
            "value": "error_rate",
            "series": "k8s",
            "stackBySeries": false,
            "mode": "MODE_LINE"
          }
        ],
        "title": "",
        "yAxis": {
          "label": "Error Rate"
        },
        "xAxis": null
      }
    },
    {
      "name": "Summary",
      "position": {
        "x": 0,
        "y": 6,
        "w": 12,
        "h": 3
      },
      "func": {
        "name": "summary_edge_let",
        "args": [
          {
            "name": "start_time",
            "variable": "start_time"
          },
          {
            "name": "requesting_svc",
            "variable": "requesting_svc"
          },
          {
            "name": "responding_svc",
            "variable": "responding_svc"
          }
        ]
      },
      "displaySpec": {
        "@type": "types.px.dev/px.vispb.Table"
      }
    }
  ]
}
